This invention relates to enabling or disabling remote features on a client computer.
Computer program applications running on a client computer may contain internal hooks enabling a user to access and download components, for example, through the Internet from a web site (i.e., a site on the World Wide Web). In some applications, certain conditions will trigger a hook, providing the user with the option of accessing and downloading information.
Consider as an example, a user of the application receives a document with a font (Font X) that is not available on the user's computer. When the user attempts to print the document, the user may receive a dialog display with the following message:                Font X is not available on your computer.                    <BUY NOW>If the user clicked on the “Buy Now” button, the user would be linked to a web site. If Font X was available on the web site, the user could purchase and download the font. If, however, Font X was not available on the web site, the user might receive a message indicating that the site was “under construction” or otherwise not operational. The “Buy Now” button is a hook added to the missing font dialog box and the programming associated with that button.                        
For this specification, a hook is a software feature included in an application in order to facilitate the implementation of a feature, which will be referred to as a remote feature, that requires the use or availability of data or programming, e.g., a web page, that is resident remote from the machine executing the application.
In current practice, such hooks (i.e., these calls to access the remote aspects of the remote features, for example by calling into a web site) are visible to the user, for example, in the form of a button or menu. The hooks are designed into the code when the software is written. A designer may choose to include only hooks for features available at the time of coding, or may also include hooks for features that will be available in the future. If the designer includes hooks for future remote features, the user, when attempting to access a remote feature, may receive a message indicating that the feature is not currently available. A similar message may be displayed if a remote feature has been disabled.
The use of hooks is advantageous because the hooks allow the remote features available to a user application to be updated dynamically. Hooks also allow an application to be implemented to provide goods, services or information (for a fee or at no cost) from one or more remote locations such as web sites. Hooks allow traditional software applications to contain a dynamic component. One disadvantage of visible hooks, however, is that the user interface provides the user with the option of accessing remote features that may not be available (either because the feature is not fully developed or because the remote feature is disabled). One known way of avoiding presenting a user with a remote feature that is not available is to design hooks only for remote features available at the time of programming. A disadvantage of this approach is that in order to add or delete remote features, the application software must be updated.